#pragma once

#include "dependencies.h"

AC::BlockData<BLOCK_LEN> EncodeCBC(
	const AC::AES::Key<KEY_LEN> key, 
	const AC::AES::IV iv, 
	const AC::BlockData<BLOCK_LEN> input);

AC::BlockData<BLOCK_LEN> DecodeCBC(
	const AC::AES::Key<KEY_LEN> key, 
	const AC::AES::IV iv, 
	const AC::BlockData<BLOCK_LEN> input);

AC::BlockData<BLOCK_LEN> EncodeOFB(
	const AC::AES::Key<KEY_LEN> key, 
	const AC::AES::IV iv, 
	const AC::BlockData<BLOCK_LEN> input);

AC::BlockData<BLOCK_LEN> DecodeOFB(
	const AC::AES::Key<KEY_LEN> key, 
	const AC::AES::IV iv, 
	const AC::BlockData<BLOCK_LEN> input);
